const KoaRouter = require('@koa/router')
const {
  create,
  list,
  detail,
  update,
  remove,
  addLabels,
  fileInfo
} = require('../controller/moment.controller')

const { verifyAuth } = require('../middleware/login.middleware')
const { verifyPermission } = require('../middleware/perission.middleware')
const { verifyLabelExists } = require('../middleware/label.middleware')

const momentRouter = new KoaRouter({ prefix: '/moment' })
// loginRouter.post("/",(ctx,next)=>{
//     const {name,password}=ctx.request.body
// console.log(name,password)
// 1 判断用户是否为空

//2 判断用户是否存在

//3 判断用户名和密码是否匹配

//4传递token
// }}
// 1 增 增加动态
momentRouter.post('/', verifyAuth, create)
// 添加动态标签
//中间件
//1、是否登录
//2 验证是否有操作这个动态的权限
//3 额外中间件 验证label的name是否已经存在于label表中
//4 如果存在 那么直接使用即可，如果没有存在那么需要先将label的name添加label表中
//最终步骤
//所有的label都在已经在label表中
//动态2和label关系添加到关系表中
momentRouter.post(
  '/:momentId/labels',
  verifyAuth,
  verifyPermission,
  verifyLabelExists,
  addLabels,

  // (ctx, next) => {
  //   // 插入moment_label表中关系数据
  // }
)

//2 查 查询动态（根据id）
momentRouter.get('/', list)
momentRouter.get('/:momentId', detail)
// // 3 删 删除动态
// momentRouter.delete("/:momentId",verifyAuth,verifyMomentPernission,remove)

// // 4 改 修改动态
// momentRouter.patch("/:momentId",verifyAuth,verifyMomentPernission,update)

// 3 删 删除动态
momentRouter.delete('/:momentId', verifyAuth, verifyPermission, remove)

// 4 改 修改动态
momentRouter.patch('/:momentId', verifyAuth, verifyPermission, update)

//5 动态配图的服务
momentRouter.get('/images/:filename', fileInfo);
module.exports = momentRouter
